package chapter02

/**
  * create by unseRdoG on  2021-05-28  13:21
  */
object Test07_DataType {

  def main(args: Array[String]): Unit = {
    val a1: Byte = 127

    val a2: Byte = -128

    val a3 = 12        // 默认整数类型为Int

    val a4 = 123131412312L      // 长整型

    // 浮点类型  (默认为Double)
    val f1 = 1.2345
    val f2: Float = 23123F

    println(f2)

    //(3) 字符类型
    val C1: Char = 'A'

    val c3: Char = '\t'
    val c4: Char = '\n'
    println(s"abc${c3}def ")
    println(s"abc${c4}def")

    // 转义字符
    val c5 = '\\'    // 表示\
    val c6 = '\"'

    println(c5)
    println(c6)

    /**
    *   字符变量底层保存的是ASCII码值
    * */

    /**
    *  空类型
    * */

    def m1(): Unit = {
      println("m1被调用")
    }

    /*
      m1被调用
      ()
   */
    // 对 Unit 而言，就只有 () 这一个实例
    val a = m1()
    println(a)

    /**
    *   nothing
    * */

    // NoThing 为 任何引用类型的子类，因此在异常抛出等场景更方便
    def m3(n: Int) : Int = {
      if (n > 3){
        throw new NullPointerException
      }else{
        n
      }
    }

    val c = m3(2)
    println(c)
  }
}
